<!DOCTYPE html>
<html lang="cmn-hans">
<head>
    <!--
      If you are serving your web app in a path other than the root, change the
      href value below to reflect the base path you are serving from.

      The path provided below has to start and end with a slash "/" in order for
      it to work correctly.

      For more details:
      * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

      This is a placeholder for base href that will be replaced by the value of
      the `--base-href` argument provided to `flutter build`.
    -->
    <base href="$FLUTTER_BASE_HREF">

    <meta charset="UTF-8">
    <meta content="IE=Edge" http-equiv="X-UA-Compatible">
    <meta content="金河查" name="description">

    <!-- iOS meta tags & icons -->
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="jinhe_client" name="apple-mobile-web-app-title">
    <link href="icons/Icon-192.png" rel="apple-touch-icon">

    <!-- Favicon -->
    <link href="favicon.png" rel="icon" type="image/png"/>

    <title>金河查</title>
    <link href="manifest.json" rel="manifest">
    <link href="splash/style.css" rel="stylesheet" type="text/css">
</head>
<body style="position: fixed; inset: 0; overflow: hidden; padding: 0; margin: 0; user-select: none; touch-action: none; font: 14px sans-serif; color: red;">
<!-- This script installs service_worker.js to provide PWA functionality to
     application. For more information, see:
     https://developers.google.com/web/fundamentals/primers/service-workers -->
<script>
    const serviceWorkerVersion = null;
    let scriptLoaded = false;

    function loadMainDartJs() {
        if (scriptLoaded) {
            return;
        }
        scriptLoaded = true;
        const scriptTag = document.createElement('script');
        scriptTag.src = 'main.dart.js';
        scriptTag.type = 'application/javascript';
        document.body.append(scriptTag);
    }

    if ('serviceWorker' in navigator) {
        // Service workers are supported. Use them.
        window.addEventListener('load', function () {
            // Wait for registration to finish before dropping the <script> tag.
            // Otherwise, the browser will load the script multiple times,
            // potentially different versions.
            const serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;
            navigator.serviceWorker.register(serviceWorkerUrl)
                .then((reg) => {
                    function waitForActivation(serviceWorker) {
                        serviceWorker.addEventListener('statechange', () => {
                            if (serviceWorker.state === 'activated') {
                                console.log('Installed new service worker.');
                                loadMainDartJs();
                            }
                        });
                    }

                    if (!reg.active && (reg.installing || reg.waiting)) {
                        // No active web worker and we have installed or are installing
                        // one for the first time. Simply wait for it to activate.
                        waitForActivation(reg.installing || reg.waiting);
                    } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {
                        // When the app updates the serviceWorkerVersion changes, so we
                        // need to ask the service worker to update.
                        console.log('New service worker available.');
                        reg.update();
                        waitForActivation(reg.installing);
                    } else {
                        // Existing service worker is still good.
                        console.log('Loading app from service worker.');
                        loadMainDartJs();
                    }
                });

            // If service worker doesn't succeed in a reasonable amount of time,
            // fallback to plaint <script> tag.
            setTimeout(() => {
                if (!scriptLoaded) {
                    console.warn(
                        'Failed to load app from service worker. Falling back to plain <script> tag.',
                    );
                    loadMainDartJs();
                }
            }, 4000);
        });
    } else {
        // Service workers not supported. Just drop the <script> tag.
        loadMainDartJs();
    }
</script>
<picture id="splash">
    <source media="(prefers-color-scheme: light) or (prefers-color-scheme: no-preference)"
            srcset="splash/img/light-1x.png 1x, splash/img/light-2x.png 2x, splash/img/light-3x.png 3x, splash/img/light-4x.png 4x">
    <source media="(prefers-color-scheme: dark)"
            srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x">
    <img alt="splash" class="center" src="splash/img/light-1x.png"/>
</picture>
</body>
</html>
